package cn.tedu.coolshark.fiter;

import cn.tedu.coolshark.pojo.vo.UserVO;

import javax.servlet.*;
import javax.servlet.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/* urlPatterns 配置拦截路径 */
@WebFilter(filterName = "MyFilter",urlPatterns = {"/admin.html","/insertBanner.html"})
public class MyFilter implements Filter {
    /* 过滤器初始化时执行的方法 */
    public void init(FilterConfig config) throws ServletException {    }

    /* 过滤器销毁时使用的方法 */
    public void destroy() {    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
        /* 类型转换 */
        HttpServletRequest rt = (HttpServletRequest) request;
        HttpServletResponse re = (HttpServletResponse) response;

        /* 得到会话对象 */
        HttpSession session = rt.getSession();

        /* 得到登录成功时保存的用户对象 */
        UserVO user = (UserVO) session.getAttribute("user");
        if (user!=null){
            /* 已登录 */
            chain.doFilter(request,response);
        }else {
            /* 未登录 重定向岛登录页面 */
            re.sendRedirect("/login.html");
        }

        /* 请求资源之前执行的位置 */
        chain.doFilter(request, response); /* 放行 运行执行请求的资源 */
        /* 请求资源之后执行的位置 */
    }
}
